//传统面向对象用法
function Person(name, age) {
  this.name = name;
  this.age = age;
}
Person.info = "aaa"; //info属性直接挂载构造器上,静态属性

//实例方法
Person.prototype.say = function() {
  console.log("原形上的Person实例方法");
};

//静态方法
Person.show = function() {
  console.log("这是Person静态方法,挂载到构造函数上");
};

const p1 = new Person();
p1.say(); //实例方法
Person.show();//静态方法

// Es6写法
class Animal {
  constructor(name, age) {
    //构造器,默认有隐藏空构造器,每当new优先执行构造器内代码
    this.name = name;
    this.age = age;
  }
  static info = "bbb"; //static修饰的属性静态属性

  jiao() {
    console.log("原形上Animal的实例方法"); //工作经常用到
  }

  static show() {
    console.log("Animal的静态方法");
  }
}

const a1 = new Animal();
a1.jiao();
Animal.show();